# 用迭代器实现一个字符串的逆序输出
"""
1.定义一个类重写__iter__和__next__  hello olleh  python
1.1 __init__ 拿到元素本身的值 拿到某个元素的下标(初始值：4 5 len()) o-4 l-3 l-2
1.2 __iter__里面返回迭代器对象
1.3 __next__ 下标依次减1 通过下标拿到值返回这个值 字符串序列[下标] 临界点(0)：主动抛出异常
2.实例化对象，循环遍历
"""
class MyReversed():
    def __init__(self,st):
        self.st = st
        self.length = len(st)

    def __iter__(self): # 固定的
        return self

    def __next__(self):  # 实现逻辑
        if self.length == 0:
            raise StopIteration
        self.length-=1
        return self.st[self.length] # "hello"[4] -- o  "hello"[3] -- l

mr = MyReversed("hello")
for i in mr:
    print(i,end="")
print()
mr2 = MyReversed("world")
for i in mr2:
    print(i,end="")